Beschreibung des Font-Converters

Christoph Pagalies Markus Fritze 15.07.1990

1 Was is das denn?

Als TEX-Benutzer guckte ich immer neidisch auf die DTP-Programme, die eine Unmenge an Fonts zur Verfügung hatten. Man sollte seine Texte zwar nicht unnötig mit Fonts überladen; aber mal etwas anderes als Computer Modern Roman wär ja doch ganz schön…

Ein anderes Problem tauchte auf, als ich ein kleines Telefon für einen Briefkopf entwerfen wollte. Wenn ich eine ganze Font-Familie mit ähnlichen Zeichen produzieren will wird man von ja ganz gut unterstützt — aber als ich (als noch nicht sehr -Bewanderter) nur ein schlichtes Zeichen kreieren wollte fühlte ich mich reichlich genervt.

Also: ein Converter mußte her. Calamus bot sich als Fontquelle an: es gibt schon reichlich Fonts dafür und auch Calamus benutzt Vektorfonts. Außerdem unterstützt Calamus nur recht ärmliche Befehle, um seine Fonts darzustellen:

Man kann den Startpunkt verschieben, vom Startpunkt zu einem nächsten eine Linie oder eine Bézierkurve (mit nur 2 Haltepunkten) ziehen — das kann ja nun wahrlich schon lange.

Das Ergebnis meiner Konvertierversuche liegt nun vor Dir. Man kann jetzt einen TEX-Zeichensatz mit Didot oder dem DMC-Fonteditor entwerfen und hinterher nach konvertieren. Auch vollständige Calamus-Fonts können übertragen werden.

Damit auch andere in den Genuß des einfacheren Editierens kommen können, habe ich mich entschlossen, den Converter als Shareware-Programm weiterzugeben.

2 Wozu Shareware?

Shareware heißt, du darfst das Programm frei kopieren. Jeder darf es nach Herzenslust benutzen — wenn man es jedoch regelmäßig verwendet oder professionell damit arbeitet, ist den Autoren (in diesem Fall also Σ-soft) etwas Geld als Anerkennung und als Ansporn für weitere Arbeit daran zu schicken.

• Kopiere stets alle Dateien auf der Diskette mit!

• Wenn dir der Converter gefällt, schick bitte 20 DM an:

Σ-soft z. Hd. Christoph Pagalies Am Schulwald 24b 2000 Norderstedt

Dafür habst du dann folgende Vorteile:

– Du bekommst die neuste Version des Converters mit deiner persönlichen Seriennummer.

– Wenn Du Fehler im Converter finden solltest und uns eine genaue Fehlerbeschreibung schickst, erhältst du gleich eine fehlerfreie(re) Version zurück.

– Die Shareware-Version hat zwei kleine Einschränkungen: Sie kann nur Fonts übersetzen, die nicht geschützt sind, d. h. Seriennummer Null haben. Dies erkennt man daran, daß sie von jeder Calamus-Version geladen werden kann. Kauft man jedoch bei DMC oder GMA professionelle Fonts dazu, so sind diese mit der Seriennummer der Calamus-Version, für die sie gekauft wurden, versehen. Außerdem können nur 10 Einträge ins ligtable vorgenommen werden. Das ist bei einzelnen Zeichen und zum Testen des Programms nicht weiter tragisch; bei größeren Fonts aber doch sehr störend. Wenn du dich registrieren läßt, erhälst du einen Converter, der auch solche Fonts verarbeiten kann.

3 Wie geht denn das nun?

Man lädt den Converter (das überrascht vielleicht jemanden, ist aber nötig). Dieser fragt in einem File-Selector nach einer Font-Batch-Datei (Extension .FBT). Gehen wir erstmal davon aus, daß wir eine solche nicht haben — wir klicken auf ”ABBRUCH“. Statt dessen fragt er nun nach einer Calamus-Font-Datei (Extension .CFN). Hier gibt man nun den zu konvertierenden Font an. Als letztes sieht man den File-Selector schon wieder: nun wird nach der Ziel (.MF)-Datei gefragt.

Dann geht’s aber los. Der Font wird geladen und intern kurz konvertiert. Man sieht einige Linien, die im Calamus-Font eingestellt werden können, auf dem Bildschirm. Aus diesen wird die Fonthöhe ermittelt. Nun können alle Zeichen überarbeitet werden: Wenn du eine Taste drückst, wird das Zeichen angezeigt. Dabei gibt es zwei Linienarten:

• durchgezogene Linien umschließen Flächen, die gefüllt gezeichnet werden — sie werden in einen Fill-Befehl gewandelt.

• gestrichelte Linien umschließen Flächen, die gelöscht werden — sie repräsentieren einen Unfill-Befehl.

Ein Beispiel: Der Buchstabe ”�“. Die erste Linie zeichnet das äußere mit Fill, das sieht dann so aus: �. Die Innereien (�) werden mit Unfill wieder gelöscht, et voilà: �.

So weit, so gut, nur geht das ganze bei anderen Buchstaben in die Hose, so macht der Converter aus einem � ein �, da er den Punkt löscht, statt ihn zu setzen. Hier muß man nun nachbearbeiten: Man drückt auf � und sieht, daß er den Punkt zu löschen gedenkt. Mit den Funktionstasten kann man nun jede einzelne Kurve hin- und hertoggeln. F1 steht für die erste Kurve usw.

Wenn man nun fertig ist, drückt man ESC. Der Converter bietet einem an, den Font zu konvertieren und/oder eine Font-Batch-Datei anzulegen.

Beim Font-Erzeugen wird vorher noch eine Ligaturtabelle erstellt, in der die gravierensten Korrekturen eingetragen werden. Leider darf eine Ligaturtabelle im gegenwärtigen nicht allzu lang werden, warten wir das nächste Update ab (Hallo Lutz!). Die so erzeugte Datei kann problemlos mit übersetzt werden, es sind keine Include-Dateien o. ä. notwendig.

4 Was soll ich mit Font-Batch?

Wenn der Converter seine Arbeit beendet hat, schlägt er einem vor, eine Font-Batch-Datei anzulegen. Diese sieht z. B. so aus:

This is a font batch file for the Calamus Font Converter
General settings:
DEBUG=FALSE
CORRECT=TRUE

FLOAT=1
LIGTABLE=256
SIZE=10
QUAD=18
SPACE=5
STRETCH=2
SHRINK=2
SLANT=0
EXTRA=5
INTER LETTER SPACE=5
SCALE_FACTOR=AUTO
CALAMUS FONT=D:\SOUV5ME.CFN
METAFONT FILE=D:\SOUV5ME.MF
Font conversion data:
A="A"  (+---------)
B="B"  (+---------)
C="C"  (+---------)
D="D"  (+---------)

Diese Einstellungen können mit jedem Texteditor geändert werden. Wenn derselbe Font nochmal konvertiert werden muß, reicht es, die Font-Batch-Datei anzugeben. Wenn ein ähnlicher Font konvertiert werden soll, kann man dieselbe Font-Batch-Datei meist weiterverwenden — notfalls mit kleinen Änderungen.

Was bedeutet der Kram denn nun im einzelnen? Alle Zeilen, die keine Gleichheitszeichen beinhalten, werden als Kommentar gewertet. Alle anderen weisen Variablen einen Wert zu.

Einige Variablen werden 1:1 an weitergereicht:

SIZE font size
QUAD font quad
SPACE font normal space
STRETCH font normal stretch
SHRINK font normal shrink
SLANT font slant
EXTRA font extra space

Wenn DEBUG auf TRUE gesetzt wird, fügt der Converter noch ”screenstrokes; showit;“ ein, damit man beim -Lauf alles mitverfolgen kann. FLOAT gibt die Zahl der Nachkommastellen an. Viele Nachkommastellen führen zwar zu einer sehr hohen Genauigkeit, mit der die Zeichen reproduziert werden, was sich vor allen bei Ganzseiten-Buchstaben und unterhalb der Wellenlänge des Lichts bemerkbar macht, verlängert aber die Dateien extrem.

INTER LETTER SPACE ist die Variable ”i“, die zur Buchstabenbreite addiert wird. SCALE FACTOR gibt die Größe der ”font xheight“. Setzt man den FACTOR auf AUTO, so wird dieser Wert aus den Zeichenausmaßen des Calamus-Fonts errechnet.

LIGTABLE gibt die maximale Anzahl der ”ligtable“-Einträge an und liegt beim jetzigen bei 256. In der Shareware-Version sind nur 10 möglich — deshalb können größere Fonts nur mit der ”regulären“ Version sinnvoll kovertiert werden.

Da auch 256 bei einigen Fonts eine große Einschränkung sein kann (z. B. bei Englischer Schreibschrift, bei der alle Zeichen stark nach rechts geslanted sind), gibt es noch einen CORRECTION-Faktor. Setzt man diesen auf TRUE, so wird die Zeichenbreite (die beginchar-Maße, die an TEX weitergeben werden), der Buchstaben verkleinert. Damit werden die Folgebuchstaben weiter herangerückt, ohne das ein ligtable-Eintrag nötig ist. Setzt man CORRECTION auf AUTO, so werden Zeichen noch weiter verkleinert, so daß einige Zeichen im Extremfall sogar links in das vorhergehende Zeichen hineinragen können; durchschnittlich passen die Zeichen aber besser. Die CORRECTION hat aber einen Nachteil: Die ganzen Korrekturwerte werden nur durch Kombination aller Buchstaben miteinander errechnet. Wenn einige Buchstaben aber mit anderen Fonts kombiniert werden, geht das natürlich schief.

Last not least steht in CALAMUS FONT und METAFONT FILE Name und Pfad der Dateien, damit man sich beim zweiten Start des Converters zwei File-Selectoren sparen kann.

Darunter findet man nun die Abteilung ”Font Conversion Data“:

Hier sind alle Buchstaben im Font einmal aufgelistet. Links ist das - -Zeichen zu finden, rechts steht das Calamus-Zeichen. Hier können also einzelne Buchstaben vertauscht werden — defaultmäßig geschieht dies mit dem ”ß“, daß in Calamus woanders zu finden ist. Wenn ein Buchstabe zu kompliziert einzutippen ist, kann man auch dessen ASCII-Wert eingeben (dezimal oder mit $ in hex).

Hinter jedem Buchstaben können in Klammern noch zehn Plus- oder Minuszeichen stehen, die die zehn Funktionstasten repräsentieren. Plus bedeutet Fill, Minus steht für Unfill.

Abschließend möchte ich jedem viel Erfolg mit dem Converter wünschen. Wer ihn nicht nur mal testen, sondern richtig benutzen will oder regelmäßig einen konvertierten Font verwendet, sollte nochmal einen Blick in Abschnitt 2 werfen. Falls noch Fragen offen sind, bin ich mailboxmäßig in der Data-Hamburg unter der Telefonnummer 040/4 90 55 58, 8N1 300/1200/2400 als CHRISTOPH oder übers MausNet (geht schneller, weil ich öfter drin bin) als Christoph Pagalies @ HH zu erreichen.